optimise bdl viewer