some high-level documentation