implement custom proccess