Improvement on Ver 2