Added a factory. It's kinda hacked in, but i'll spend tomorrow adding better usage of DI.