Last modification
- Added some documentation
- Deleted some unnecessary headers
- Added some end lines
- Tested on 3 different compilers and 2 platforms