move define to header file and add .gitignore