The separation is not perfect yet, but it's a start and makes the entire codebase much easier to read.