Updated source code

Please merge.