etl: allow other user-defined types for input

closes #5.