first commit with draft code containing basic structure