It's not pretty, or fast, but it works