tying it all together, added user authentication