floating for clarity
a little more validation