added some comments, made hold time a #define