Adding authentication... this will change quite a bit when I'm done