add support for other types of shifts