added constructors for shapes