self-made string