ready to submit, comments added, gonna try to reduce double edges