declare functions explicitly to get it right