don't use observes because not working