need some test and comments