Refine my codes version 2.0;