In non-functional state
Refactored a ton of shit, added factory methods. Have not tested yet
Fixed merge stuff
Fixed merge stuff