Abstract Class for Simulations