change the high-level concept a bit