results seem correct.. some tidying up left