changed update::design to use ast and made depth a variable: design_level