add constructor with inputs