more features functions and a new structure