add test , bug fixes