basic project structure and gems