Functional implementation

Adding and removing seems to work properly now, to all services and
with various options.