Implement first somehow working version