Throw more meaningful exceptions other than NotSupportedException

This will solve gh-9