Refactored classes
Got simulation working again with new design