Adds defailt options and validates required options