add callback option

this isn't exaclty what i want but it's a decent start and a version
that i want to hold on to.