login, register, refactor