Initial commit
Some API and style changes