Rename method. Add tailrec