[IMP] update some code base on specification