add support for better modes