added background and functionality