Total new implementation. Also used new maven annotations