beginning with object generation