initial work on SLD generation

This needs more work, but this will be done in subsequent PRs