completed version