Initial commit. Mostly works (21/22)