Refactored everything and added branch-and-cut