make handle dispatch interface :o