Update demo page to use abstract fields and add error messaging