using OOP

add makefile (for mac/linux)
using OOP

header files with only declarations