Fixed type matcher bug (it works for interfaces etc now)
Added mediator mapper
Added guards and hooks