more optimisations!