Consistent structure and supports data update

See #147