add base code and simple test