restructured app to use multiple modules