lots of stuff. serializing macro.