cleaned up and added headers