fix constructor bug