refactor of usage system