implementation and testing complete