Graph class structures

Signed-off-by: Jamie White <hello@jamie-white.com>