Unnecessary string conversion.
Username renamed to query.
utf-8 encoding.
scroll effect.
Separate js module.