немного оптимизаций, uint32_t -> uint16_t, uint8_t
guard h-files