implement all the structure methods without testing