my branch snapshot before first refactor and merge.