[Feature] add state