add base adapter, add spec for Knapsack module