optimisations, bugfixes