.h -> c header (public interface)
.hpp -> c++ header (private interface)
.cpp -> c++ source (private implementation)