pos_v2

written in a object-oriented way.