move too much subscribe logic to the store