input buffer