Closes #9 - implement user auth