Add assembly for shifting
Split assembly into several files