uses classmethod instead of instantiating class