add typelogic