add granularity parameter to shortcutter
include iterator