first draft completed! transitivity needs work though