working on refactor and additions