refactor2
temp