Upgrade & refine a bit