updated warning levels, requires explicit atomic/nonatomic declaration