[WIP] Little cleanup and new features

each commit is atomic.