Initial implementation of step()