changes to 'has' logic