Split project into component files

Signed-off-by: Diwank Singh <diwank.singh@gmail.com>
Refactors and views

Signed-off-by: Diwank Singh <diwank.singh@gmail.com>