basic cache functionality added