Rename generic types, move datasource field and constructor to CRUDResource