shared_step inheritance