Need to refactor2