Implement first version of the reasoning process