added ArgsValidation, changed spec structure