used concerns include voteable
transfered function
update func name