moving some code to better separate concerns. Likely  overcomplicating everything. Definitely writing more code that I probably should.