initial version, mostly stable