part II finished, not tested yet!