major overhaul, keep in sync in repo