adds most of the functionality on master.
Signed-off-by: Vinayak Patil <vinayakpat@cybage.com>