Custom classes with convenience methods complete