Restructure this method please!