EduDB consists of five independent subsystems as shown in the right panel image. Each subsystem is built around a set of core interfaces which enables substituting algorithms and data structures with alternative ones. For example to query multidimensional indices, a student might decide to try a hash-like data structures, such as a grid file or a partitioned hash function instead of a Kd-tree. All what it takes is to identify and implement the correct interface and modify a configuration file to test the new approach.