Enhancement: #2 #5 #6 #7 #8 #9