Initial working version + tests