Work in progress... version 2.2