- define variables, `ugly` initialisation -

Time variables should be stored as unsigned long. Also make sure you code your time handling to deal with rollover correctly. The following are not equivalent:

// good
if(millis() - lastMillis > interval)
{
    lastMillis = millis();
    ...
// bad
if(millis() > nextMillis)
{
    nextMillis = millis() + interval;
    ...