works better with libs