User module converted to use promises (Q) + tidy up