submitted, cleaned up