completed LogicLib