Some refacotirng and started to implement.