refactor project structure and add basic socket connection