annoying validation bugs. don't change class data types in constructors