keep reducing code length