Implement Simulator