login refactor
merge