added presenter layer for user
controllers corrected as suggested