added diagram, not sure if it's helpful