update 1&2 and add 3