added more support, test as op, and more tests