improved dynamic object generation