Fix and further Optimization