Improved all the shortcomings