Updated with some new mechanics.