still doesnt work really good
more improvements
Update