Working, but more tests needed.