Added constructors and clone method