Implement add, remove and select functions