generate panel