add trigger() method and more tests