The use of object oriented principles to develop intelligent legal reasoning systems