misunderstood original requirements, reimplementing