A flexible architecture for Computer Based Instruction