Various improvements by Carl Nettelblad.