80%

80% finished I think. but the code needs major regressing