refactor and bug fixes
6 files changed