overhaul scope to be more generic