fixing implementation