merged up development branch. added 'pickle' and 'unpickle' methods