Rewrite: changed scope and concepts