more complete type checks and update on required setting