Borrow FSM Designed by Evan Wallace