setcurrentsubstate doesn't, who calls onLeft?