Being less of an idiot; overriding abstracts as lazy vals