Imports not needed. Only 556 lines of code for #6
#6 and #5