Reorganise and add Makefile