refactor copy(static) to compact with apply