almost ready to complete version 1