many improvements... almost ready for general use