think about the implemention scheme