extra functions, parameters check