threading seems to work XD