TODO Move include files into a specific sub-directory. Add fat pointer module. Add formatting and printing option for dynamic types. Implement optional type.