More refactoring and added the background property