The shoji framework