Lots of neat changes

Signed-off-by: Ozan Turgut <ozanturgut@gmail.com>