* refactor Resource