Cleaned up includes (used forward declarations whenever possible)