added part 3 (OPass), which is not yet complete
merger