add double set/get

issue:
0. comparing double is hard, so need to work that out
1. codes are similar, find a way to reduce that
2. 'set' should change the value, or create new value?