code reuse

1. scale.invert() fucntion is very useful, or you will need to translate by
yourself

2. update pattern are used

    after enter(), new binded data length > orginal
    new data will be chosen

3. array.push(new_data)