small optimisations for better usability