state transition skeleton
Another huge merge