more small optimisations