cleanup and feature parity