finished implementing classes