starting to modularize