Refactored to use dynamic body, added source url as required, and renamed name to description
More refactorings
Organizing imports
Fixed some bugs