added basic types
added smart cast
added ranges in kotlin
added null safety
added internal methods
classes