working on better lib