refactor project configuration classes