This class on its way to become a God object :)

When you are designing a class always remember about Loose Coupling And High Cohesion™. I know this phrase is annoying since it's used in every single article on OOD, but it perfectly reflects goals you need to achieve when designing a class:
- One class performs only one job, so it's quite generic and reusable;
- Code is readable and easy to understand without a need to dig deep into other classes and/or methods;
- Changes to this class won't result in a need to rewrite other classes that use it
etc.

Keep it simple. Sometimes it's better to implement a couple of free functions than to combine them into a class. Don't create a class when you don't need to just to force it into OO-paradigm.