Should we just pass the annotations in here, rather than split them out into the boolean parameters?