cb and extra are optional