Changed dividion to shift, major size optimization