componentmodel tweaked to work with mono