initial lib prototype