added framework functions