[WIP] reduce code