adds validation of required attributes

Redundant `self` detected.<br>Prefer double-quoted strings unless you need single quotes to avoid extra backslashes for escaping.