add input_builder (like factory) and separat inputs by types