started on annotation and integrating into the custom factory