Beginnings of an interface, general optimisations