updated framework (Jeff's)