forward fonction implementation done