robot step impl