Converted email to value object and added validation.
Added role to user entity.
Refactored role to just use string values.
Added container specification.