small library for self use