some refactorings
fixed ILP Bug: It returns optimal solutions now!