Signin actually working now. Error handling needs work - should be more abstract at the lowest level.