pulled interactive oauth code out as separate class