Added observer and some controller struff