optimize2.2&2.3, add 2.4