Initial commit w/Kush pair refactor.

This is a refactor of #1, now with tests. Paired with Kush.

Another PR will follow to change argument handling in `main.go`.