changed underlying data structure to a set from list to avoid potential duplicate mappings, also split protection level or's to map to individual components more accurately