add 'make test', and separate private struct to header file from src