it's possible that return types might reference annotated objects