- redesigning: only one bucket passed around