Refactored out the virtual ProcessRecord method