add collect_uses and lowering array