How it works units() returns an overloaded object base units (kg, s, m) base value scaling to natural units operations return new objects check consistency propagate units set method does sick things check consistency copy base value, not scaling