Begin to fully implement validation system: attributes, viewmodel & initialiser. DOES NOT BUILD.