refactor for simplicity, no re-activity yet