update build and organize source better