TODO: merge sorting