js based version. rules in yaml