if o is null this will fail with NullPointerException