commit 10/27/2014 part 2
commit 10/27/2014 part 3
commit 10/28/2014
commit 10/28/2014 part 2
commit 10/28/2014 fukyea!