started modularizing
totally broken modularization attempt
reorganized, maybe fixed some things
added missing requirement
modularized