Pulse integration

Not ready to merge. Posting pull request for easier review during development.