fix + feat + improvement  (#621)