Review, not tested
added length check to constructor, added documentation
Remove copied missleading description