code: @Override
  	public void save(Object context, Bundle bundle) {
  		
  		Set<Field> fieldsToSave = FieldUtils.getAllFields(context, Stateful.class);
  		
  		for (Field field : fieldsToSave) {
  			
  			try {
  				
  				if(!field.isAccessible()) field.setAccessible(true); 
  				
  				Serializable state = (Serializable)field.get(context);
  				
  				bundle.putSerializable(field.getName(), state);
  			}
  			catch (Exception e) {
  				
  				StringBuilder stringBuilder = new StringBuilder();
  				
  				stringBuilder.append("Failed to save state of field ");
  				stringBuilder.append(field.getName());
  				stringBuilder.append(" in ");
  				stringBuilder.append(context.getClass().getName());
  				stringBuilder.append(". ");
  				
  				Log.e(getClass().getName(), stringBuilder.toString(), e);
  			}
  		}
  	}
docs: {@inheritDoc}