moved stuff into constructor, made stuff final
fix some errors from last commit