help and refactor