changed Replicate to use annotations and reflections library for replicated fields