Major update

Added new classes and tests