Heat optional services

This is pull request #15 with some tweaks on top.