Added support for @NotNull etc
Refactored to move the torch into a separate unit.
Removed redundant data.