added several modes. using a blocking delay() function at the moment, will change later.