Notes/To Do: 1) replace sending in strings of binary and lengths with: c) one source should allow storage of ASCII strings, converting to binary in the backend 2) error handling a) throw error for deleting stuff that's not there b) check/handle (and throw) when you cannot allocate space to do an operation c) throw error for invalid input to functions i) invalid characters in strings for source3: bool isLeaf() can be handled by setting a flag during inserts/deletions, that way we don't need to calculate (Not worth due to limited use, but higher storage cost) Summary: Source1 is binary Source2 is soure1 but worse Source3 is decimal