This is a point of extension - probably should be completely replaced by an abstract factory of the consuming libs