added one improvement, no guarantee though ))