refactor; mv desc construction