I agree. What you laid out is basically what ngResource provides, I may switch over