refactored heavily

refactor encounter and refill