full working version

this is a fully working version