many changes, Greedy ASM may work now, TODO add other ASMs