refactor callbacks, add verbose toggle