improved code and file size
improved code and file size