Generate best practice

replaces #568

i went with yml rather than annotations. what would annotations do, service definitions by annotations?