Add more functions
Change to inheritance
Add generating unique names
remove inheritance and add deleting