remove eta and refactor