Currently the implementations are written in Test classes, We need to seperate the implementations and their test cases in their own classes.