Now it works with many modes