fix + feat + improvement (#612)