add set serverside username feature, refactored io.js