refactored to project specs