Refactoring (not complete), Finally Fix #2