Great refactoring of the artefact class hierarchy, and used it to simplify the graph-related code and remove duplicate code.