accommodate different types