some memoizing and better seed data