another rewrite for simpler inheritance
Revert "another rewrite for simpler inheritance"

This reverts commit 8afe5e688903aa8c42dc6d89bc1fd6f429320c8f.