Initial basically-working version