refactor some stuffs