Rewrite

Basically rewrote the gem on modern standards and dependencies with a modern API.