refactor v1.2