add inventory read/write
make metallic extractor sided
make sided inventory a trait for consistency
add logic to extractor