why `Bundle` in the name ? it has nothing to do with bundle. This interface could be used anywhere else.