Trying to merge
Fixes requires/produces methods. Error messages now returned if correct input type is not found.