updated with proposed framework

see commit 00060a17f549f3ee2f0cf6181ebbdd036797f436