clone() now returns the proper type
branch merge