fix some errors  &  add some ability