conditionals added for different types