Better API

Closes #1.
The same should be fixed for `module-definition`