Bout to refactor whole bunch of things