use an enum to count backends instead of sizeof