shared libraries ftw
use unordered maps instead of silly vectors
use an unordered map