added attributes and cleaned up struct tuple and extern