The basic design and algorithm are specified