Polished, improved code and added features