selfFramwork