Implements, without tests, do not use!