feat(api): more flexible annotation method