tighten implementation