added inputs implementations