Refactor macros; improve layout; better snapshot macros