adding a fully functional add