rewrite to DesObject
rework for new image