add modular approach for makefiles