Don't clobber options, and allow callback as a seperate param