general clean and fixed #20