Move some more stuff into __init__, improve