Updated documentation and changed inheritance