Shouldn't this return Class<? extends Scheme> ?