maybe add an assert to prohibit double-setting or take care of the case there already is a weapon