use c++11 functionality (add range-based for to macro function)
add argument checking to init script
add Makefile