some C programming language stuff