refactor DS to accept any idfield on a model