A good program is never finished, and ours has only just become workable..