my own cplusplus library