use node semantics

switch callback to be the last argument