refactored to move pojos