full functionality without tests