refactor, rename, reorganize code structure