add is now much faster