optimize controller, extract vote in concerns