splited to ops