added clonable interface