first working version with reverse