Refactored make system