refactored Resource's interface