delete implemeneted, need thoroughly test.