added many framework functions