A general architecture to support mobility in learning