finished framework class