Used standard lib pattern.