create user accesstoken on account creation and simplify authenticate method
abstract transactional emails to their own model