redesign the Makefile for 3