28 - passed

Made this complicated... need to simplify, then abstract. fully
understand the requirements