incorporate feedback from Yakov Rekhter