refactor

closes #1