restructured, compiles with type checking
restructured, compiles with type checking