Very basic trait based design by contract solution