Added cache for performance. Since 1.2.0, only dot(.) can be the separator.