dynamic types model