adding Recursive and Clever methods.