Type safing Obserrver