I think these are starting to have serious overlap in an effort to make the library functions as generic as possible