more work for refactor