error handling for ADD. cleaned up a LOT. directive + service.