Complete initial version