implementation finished. unit test works.
merging header files