update: simpler structure