make this follow the logic of subs