first version w/ proper complexity switch statement w/ case fall-throughs