tests passing, now to refactor