works
refactor #1
temp