Rework custom background

Custom background has been changed into delegate instead of property