fragment should always be an array