tailcall optimization was done
added tests for tco