changed all clone methods to use context-arg constructor