* Some readonly properties actually should be readwrite
* Refine api