Added new features + Improved code