should this class be Abstract if called AbstractResource?