expose substantiate / TODO: add restrictions