added clonable base class and geometry classes