Add Visitor pattern(Drawer)