functions should throw on error, not return bool
Custom Exceptions for blockchain, more may be needed/desired later