fix & improve