moved some logic to init method and removed add/remove methods