Doesn't this leak memory when this function is called multiple times? (At least I cannot see where _background is ever freed).