Put the input formatting inside a class,the surplus calculations might still be a bit weird... zone price calculations seem ok