Extract things out into their own methods, instead of having everything in the constructor