tweaks and optimisations