Improvements needed so far: #3 #4 #5
Improvements needed so far:
#3
#4
#5