fixed separation algorithm