working version with close to everything