Framework functions