upcase constructor
cleanup
same type for value and partial
cleanup
use one() instead of 1