Finished  and Enums and Structs

update to enums and structs and started protocols and ext