separated code out into different modules
added new files.. duh!