Improved and extended (blurbs for testing still missing).