added static create* functions