fixing weird exception refactor mess