first working version finished