I think a general refactoring of this class is in order. There are too many conditions hidden inside the methods.