this is not really c++....