add self for copyright and clarify purpose