First working version without tests.