Add main header file and tests