refactor

closed #18