more convenience methods
updated diagram