Please refactor