Initial commit with working demo and testcases