refactor type-literal file
document null hack
add generic types