restructured project into modules