optimisations and tweaks