added type signature