cleaned up for readability