Solved A, B. Working on C, D. (17/01/2013)

Signed-off-by: Andrew Tselischev <andrewtselischev@gmail.com>