added static methods for object creation