using const char* for signatures to prevent string copying