refactored to deliberately call step instead of hiding it