fix bug and improve performance;
add a range: 12;