further impr typedef