split log-in to its own method

make it sub-classable