use tap
opts may now be undefined