requirements and restrictions
working