修改 direct 实现方法