off to work, refactor & tests needed