added logging, most of the project structure, and basic logic