#15 - implemented(closed)
#14 - implemented(closed)
#13 - implemented(closed)
#11 - implemented(closed)
#10 - implemented(closed)
#7 - implemented(closed)