Updates
Change: Change header guards
Update include ordering
Added comments, exception handling