Separated type definitions and running code