feat: add decorator syntax