Hi

Good implementation.
See my comments about unit test