beta version & pass the formattor test