This method is getting a bit long.