Observer is nearly implemented
controll flow is not correct