This shouldn't depend on annotations