this lib is a pile of crap