Added Nject, updated tests accordingly, made factory patterns more clear