Added the observer and other shit