update lib, change interface to use dispatch