add options type check