Improved all code. Ready to use