package Compile as a struct