implement option 3 (#375)