self lib