fixed rubyish object attribute scoping. adding recursion tests