refactor, closes #1