Worked on this a bit while at work. Broke some stuff. Will resolve it
later. Preparing to implement the builder patter as well.