added two methods, one incomplete