* add format method
* improve interface updating mechanism