refactor file structure and build tool