some libs taht will have to be made generic