add background, small refactor