issue 129 refactor done, with descriptions