initial version
various changes