Added classes and tests