Clean code and added documentation