structure.update only checks capacity if structure produces something
move structure type into structure constructor parameter
Merge remote-tracking branch 'origin/master'