add transitions to dispatch
add lazy method