some working stuffs