update simulate to accept different positional arguments