Implmented factory and also refactored othelloImpl