todo: better selection()