A semi working version