Moved oit implementations to own classes and edited main so the implementations are interchangeable at runtime