Split the core project into small projects