A purpose-driven visual IDE