background and logic