Why do you need an implementation here? Can't you just use DataSource?