refactor, private up, prepare for plugin arch.