- reimplemented library v0.3