improve error messages, add toDot