Switch to annotated beans instead of interfaces