use AuthManager instead of guard
create custom creator to handle custom provider