Refactor variable names, add specs, add comments to exported methods.
Fix edge cases for '#'. Clean-up code. Add clarifying comments.
first pass at ets support