Implement add and rm

I might need a better structuring for AddWhen, RemoveWhen etc

Signed-off-by: Thameera Senanayaka <thameera123@gmail.com>