updated and working :D