Beginning refactor to interface style, re-working so it's easier to add new auth and object-based strategies