Add constructor tests
Add more documentation to most methods
Add (shallow) copy constructor
Suppress some warnings about explicit casts