core project structure