beginning to properly modularize things
more of slicing the library up into various components