move to trait, delete auth part