New implementation of add (not working yet)