refactored to have three projects