Work towards first milestone

too much to separate into cleaner commits :/