optimize lib size