This seems weird - why do you define a class with an "or" on itself?