add optional oauth support