Continued dev and refactor

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