Move #15
Refactor #16
Refactor #17