Some fixes

* Make interfaces public
* Add constructor to factory
* Move factory dictionary initialization to constructor
* Add nonfunctional methods to AI and Human