return empty array if no source