add logical steps