FINALLY fully working