include better recursion and infinite loop checking, update readme, increment version