> For the complete documentation index, see [llms.txt](https://docs.aitheon.com/creators-studio/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.aitheon.com/creators-studio/new-component-creation-tutorial/general-requirements.md).

# General Requirements

Follow these general principles to provide convenience and clearness for users.

Make components:

* **purpose focused**. It\`s better to create several components with clear properties for specific tasks than one general multitask component with confusing options;
* **simple to use**. Provide clear naming, sufficient help explanations, avoid complexity;
* **prepared**. The component must adequately handle all types of message properties data - boolean, number, string, buffer, object, array, or null;
* **predictable**. Document and make the component to provide documented doings with message properties - the result must comply with the promises;&#x20;
* **controlled**. The component must catch errors or register error handlers for any asynchronous calls it makes, wherever possible.
