recursion - that was really hardgit push