Refactored code, added Profile model, improved diversity