finish the version 3