simplification and renaming
reduced visibility
added graph support