updated with formatting and datastore