add some structure and interfaces for collision detection and renderering
fix merge conflicts in main.cpp