use emplace instead of insert
add move constructor for Entity; delete implicit copy constructor