no longer depends on any non-core modules, handles form and json posts appropriately