adding more functionality, moving things into modules