framework functionality