Proper docstrings are missing. This will be added as soon as some of the discussion points are solved.