this class is already on my "refactoring todo list".