added shield functionality