initial project structure with basic layering and event handling support