renamed ValueObject to ValueType (which is more accurate) ; Board's parse method throws UnsupportedOperationException instead of returning null to avoid forgetting to implement it on battle-day