Add header files and modularize dir