less meat
move structure impl
less meat
less meat
less meat