tail recursion is almost working
tail recursion works, normal recursion works as well (factorial func)