make signature optional