Several optimisations