changed according to the new implementation