win/lose/push helper methods, various cleanup and new routing