new structure oartially implemented