added lib, test and tap