final for piping