further reduced code size