initial version complete