have all method use similar signature