complete the second version