implement split
implement lookup