add pure base for testing