Most of Protuhj's suggestions