added necessary fwd declarations
style updates & changing unecessary include to fwd declaration
adding necessary include
mostly style udpates