created hierarchy to allow for easy expansion of classes