leaner, tested bugfree in sim, not yet polished