Finished HalfInput implementation