Added size() operator and recursion