add shield functionality