working and mostly organized simulation with functional GUI