reformated for better review