Better typing of internal values
More flexible internal types