Added basic classes and implementations