private framework