added abstraction, background and sound