initial version up to step 7.