Improved add method