Add constructor for compact initialize