Programming 3.3v ATMega328 running at 16MHz
Regarding you comment question "If i design everything using 3.3v i guess worst case i can just put in a 8MHz crystal and it should be fine?".

Look at the speed grades in the datasheet where maximum frequency vs voltage is given.



Since the curve is linear between 2.7V and 4.5V you can calculate the maximum speed @3.3V as follows:
fmax@3.3V = (3.3V / 2.7V) * 10MHz = 12.22MHz (i wasn't thinking)
You have to get the linear equation using the two-point form for example (given the two points form the diagram) which results in:
f = 50/9 * U - 5 = 50/9 * 3.3V - 5 = 13.33MHz

So you should be fine running at about 13MHz@3.3V.