Added tail recurse optimization