reworked headers, got forward declarations to work