started abstracting out recordID to primaryKey