stronger test and add more functions