First commit with pretty much all code ready