MakeFile added. Some refactor to make it compile.