[feature] shallow/deep own properties extend/copy