Unit test should be added later. I agree on the rest :)