this class should have the possibility to accept precomputed shifts