added background, code cleanup