use SNR to calculate threshold
Use UNCERTAINTY to set voting range
metaprogramming