Rename variables for readability
Add clear() to base class
Turn on -Wall and -Wextra compiler warnings
Fix signed / unsigned casting bugs