premature optimisation is the mother of all screw ups...