fix dynamic add/remove