clean code and documantation
Removed unwanted requires
Add: #5 #6 #7