Make some stuff final, improve constructor.