added more comments and another mix method