first interfaces and a graph default implementation