add minimal implementation and test code