added various modes